home *** CD-ROM | disk | FTP | other *** search
/ MASPC 1 / MASPC_1.iso / Demos / Demo DIV / DATA / PRG / JUEGOS / NOID_MAP.PRG < prev    next >
Encoding:
Text File  |  1997-11-27  |  4.7 KB  |  146 lines

  1.  
  2. //------------------------------------------------------------------------------
  3. //TITTLE:      NOID SCREEN EDITOR
  4. //AUTHOR:      DANIEL NAVARRO
  5. //DATE:        2/15/97
  6. //------------------------------------------------------------------------------
  7.  
  8. PROGRAM mapa_noid;
  9.  
  10. GLOBAL
  11.     // Tabla con la posicion de los graficos dentro del fichero
  12.     ladrillo_g[]=10,11,12,13,14,15,20,30;
  13.  
  14.     ladrillo_x;     // Coordenadas del cursor
  15.     ladrillo_y;
  16.     s_ladrillo;     // Tipo de ladrillo elegido
  17.  
  18.     mapa[16*14];    // Mapa que se graba en disco
  19.     mapaid[16*14];  // Mapa de identificadores
  20.     fondopantalla;  // Fondo de pantalla elegido
  21.     sonido0;        // Identificador de sonido
  22.  
  23. BEGIN
  24.  
  25.     load_pal("noid\noid.fpg");  // Carga paleta de colores
  26.     load_fpg("noid\noid.fpg");  // Carga fichero de graficos
  27.     sonido0=load_pcm("noid\billar0.pcm",0);  // Carga sonido
  28.     fade(100,100,100,8);        // Enciende la pantalla
  29.     put(0,100,0,0);             // Pone el fondo de pantalla
  30.  
  31.     // Pone unos textos con las instrucciones
  32.     write(0,272,0,0,"O,P,Q,A");
  33.     write(0,272,10,0,"Mover");
  34.     write(0,272,20,0,"cursor");
  35.     write(0,272,30,0,"W,S");
  36.     write(0,272,40,0,"Cambiar");
  37.     write(0,272,50,0,"ladrillo");
  38.     write(0,272,60,0,"L,Ñ");
  39.     write(0,272,70,0,"Cambiar");
  40.     write(0,272,80,0,"fondo");
  41.     write(0,272,90,0,"Espacio");
  42.     write(0,272,100,0,"Poner");
  43.     write(0,272,110,0,"ladrillo");
  44.     write(0,272,120,0,"F1");
  45.     write(0,272,130,0,"Cargar");
  46.     write(0,272,140,0,"mapa");
  47.     write(0,272,150,0,"F2");
  48.     write(0,272,160,0,"Grabar");
  49.     write(0,272,170,0,"mapa");
  50.  
  51.     // Inicializa las coordenadas
  52.     ladrillo_x=0;
  53.     ladrillo_y=0;
  54.  
  55.     WHILE (NOT key (_esc))
  56.  
  57.         // Mueve de posicion el cursor
  58.         IF (key(_q) AND ladrillo_y>0) ladrillo_y--; END
  59.         IF (key(_a) AND ladrillo_y<13) ladrillo_y++; END
  60.         IF (key(_o) AND ladrillo_x>0) ladrillo_x--; END
  61.         IF (key(_p) AND ladrillo_x<15) ladrillo_x++; END
  62.  
  63.         // Cambia el ladrillo seleccionado
  64.         IF (key(_w) AND s_ladrillo>0) s_ladrillo--; END
  65.         IF (key(_s) AND s_ladrillo<7) s_ladrillo++; END
  66.  
  67.         // Cambia el fondo de pantalla
  68.         IF (key(_l) AND fondopantalla>0)
  69.             fondopantalla--;
  70.             clear_screen();                 // Borra el fondo
  71.             put(0,100+fondopantalla,0,0);   // Y pone el nuevo elegido
  72.         END
  73.         IF (key(_semicolon) AND fondopantalla<3)
  74.             fondopantalla++;
  75.             clear_screen();
  76.             put(0,100+fondopantalla,0,0);
  77.         END
  78.  
  79.         // Pone o borra un ladrillo
  80.         IF (key(_space))
  81.             sound(sonido0,256,256);          // Realiza sonido
  82.  
  83.             // Borra ladrillo
  84.             IF (mapa[ladrillo_y*16+ladrillo_x]==ladrillo_g[s_ladrillo])
  85.                 mapa[ladrillo_y*16+ladrillo_x]=0;
  86.                 signal(mapaid[ladrillo_y*16+ladrillo_x],s_kill);
  87.                 mapaid[ladrillo_y*16+ladrillo_x]=0;
  88.             ELSE
  89.  
  90.                 // Pone ladrillo
  91.                 IF (mapaid[ladrillo_y*16+ladrillo_x])
  92.                     signal(mapaid[ladrillo_y*16+ladrillo_x],s_kill);
  93.                 END
  94.                 mapaid[ladrillo_y*16+ladrillo_x]=ladrillo(16+ladrillo_x*16,12+ladrillo_y*8,ladrillo_g[s_ladrillo]);
  95.                 mapa[ladrillo_y*16+ladrillo_x]=ladrillo_g[s_ladrillo];
  96.             END
  97.             WHILE (key(_space)) END
  98.         END
  99.  
  100.         // Graba mapa
  101.         IF (key(_f1))
  102.             save("dat\noid\screen.blk",&mapa,16*14);
  103.         END
  104.  
  105.         // Carga mapa
  106.         IF (key(_f2))
  107.             FROM x=0 TO 223;            // Primero borra el mapa antiguo
  108.                 IF (mapaid[x])
  109.                     signal(mapaid[x],s_kill);
  110.                     mapaid[x]=0;
  111.                 END
  112.             END
  113.             load("dat\noid\screen.blk",&mapa);
  114.             FROM y=0 TO 13;             // Crea el mapa nuevo
  115.                 FROM x=0 TO 15;
  116.                     IF (mapa[y*16+x]<>0)
  117.                         mapaid[y*16+x]=ladrillo(16+x*16,12+y*8,mapa[y*16+x]);
  118.                     END
  119.                 END
  120.             END
  121.         END
  122.  
  123.         // Pinta cursor
  124.         x=16+ladrillo_x*16;
  125.         y=12+ladrillo_y*8;
  126.         graph=ladrillo_g[s_ladrillo];
  127.         flags=flags XOR 1;
  128.         FRAME;
  129.     END
  130. END
  131.  
  132. //------------------------------------------------------------------------------
  133. // Process ladrillo
  134. // Pone un objeto en el mapa
  135. // Entradas: Variables predefinidas
  136. //------------------------------------------------------------------------------
  137.  
  138. PROCESS ladrillo(x,y,graph)
  139.  
  140. BEGIN
  141.     LOOP        // Crea un bucle infinito
  142.         FRAME;
  143.     END
  144. END
  145.  
  146.